Jun 8, 2010

Insert Image With PictureEdit

Yoyo.... drummernya PADI :D. Heheheh bercanda ajah, lagi seneng dengerin lagunya Kungpow Chicken yang baru.
Ceritane seharian ini saya pusing banget mencoba memasukan gambar Photo dari Pegawai ke Database MS SQL Server 2008. Kenapa kok begitu ? ya.... karena saya tidak menggunakan component bawaan dari .Net tetapi saya menggunakan Component PictureEdit kepunyaan DevExpress. Dan dengan component PictureEdit tersebut ternyata banyak yang berbeda dengan tutorial-tutorial di internet, seperti saya tidak bisa dapat panjang dari data gambar dsb lah. Akhirnya setelah browsing-browsing beberapa lama dan kumpulin artikel satu-per-satu saya temukan juga benang merah yang bisa saya gunakan untuk membuat algoritma buat memasukan data gambar ke MS SQL Server.
Gak usah banyak bicara lagi langsung saya bahas caranya. Ikuti langkah berikut :
1. Jelas kita harus punya sebuah table yang mempunya field dengan tipe Image di database. Dan field punya saya mempunyai nama 'Gambar', yang ada di table 'Pegawai'.
2. Langsung buat fungsi pembantu agar bisa merubah tipe Image ke Byte Array

-------awal code---------------
Public Shared Function ImageToByte(ByVal loadImage As Image) As Byte()
Dim imageStream As MemoryStream = New MemoryStream()

loadImage.Save(imageStream, System.Drawing.Imaging.ImageFormat.Jpeg)

imageStream.Close()
Dim imageByteArray As Byte() = imageStream.ToArray()
imageStream.Dispose()

Return imageByteArray
End Function
-------akhir code--------------

3. Kemudian tambahkan code pada tombol tambah, agar ketika tombol tambah di click dia akan memanggil fungsi untuk memasukan data.

---------awal code--------------
Private CPNSLogicConnection As New CPNSLogic

Private Sub SimpleButtonTambah_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SimpleButtonTambah.Click
Try
Dim Nama As String = Trim(TextEditNama.Text)
Dim Alamat As String = Trim(MemoEditAlamat.Text)
Dim TempatLahir As String = Trim(TextEditTempatLahir.Text)
Dim TanggalLahir As String = Trim(DateEditTglLahir.Text)
Dim JenisIdentitas As String = ComboBoxEditJenisIdentitas.Text
Dim NoIdentitas As String = Trim(TextEditNoIdentitas.Text)
Dim Kelamin As String = RadioGroupKelamin.SelectedIndex.ToString
Dim Perkawinan As String = Trim(ComboBoxEditStatusPerkawinan.Text)
Dim Agama As String = ComboBoxEditAgama.Text
Dim NoTelp As String = Trim(TextEditNoTelp.Text)
Dim JenjangPendidikan As String = Trim(ComboBoxEditJenjangPendidikan.Text)
Dim NoIjasah As String = Trim(TextEditNoIjasah.Text)
Dim TanggalIjasah As String = Trim(DateEditTanggalIjasah.Text)
Dim Pendidikan As String = Trim(MemoEditPendidikan.Text)
Dim NIP As String = String.Empty
Dim Golongan As String = String.Empty
Dim KerjaTahun As String = String.Empty
Dim KerjaBulan As String = String.Empty
Dim GajiPokok As String = String.Empty
Dim Penempatan As String = String.Empty
Dim Jabatan As String = String.Empty
Dim StatusKepegawaian As String = String.Empty
Dim TanggalNpBKN As String = String.Empty
Dim NoSkCPNS As String = String.Empty
Dim TanggalTMT As String = String.Empty
Dim NoSTTP As String = String.Empty
Dim TanggalSTTP As String = String.Empty
Dim NoSkPNS As String = String.Empty
Dim TanggalKesehatan As String = String.Empty
Dim NoKesehatan As String = String.Empty
Dim Gambar As Byte() = Nothing
'Check if NIP exist so get all data
If TextEditNIP.Text.Length > 0 Then
NIP = Trim(TextEditNIP.Text)
Golongan = Trim(LookUpEditGolongan.EditValue.ToString)
KerjaTahun = Trim(TextEditLamaKerjaTahun.Text)
KerjaBulan = Trim(TextEditLamaKerjaBulan.Text)
GajiPokok = Trim(TextEditGajiPokok.Text)
Penempatan = Trim(LookUpEditPenempatan.EditValue.ToString)
Jabatan = Trim(TextEditJabatan.Text)
StatusKepegawaian = Trim(ComboBoxEditStatusKepegawaian.Text)
TanggalNpBKN = Trim(DateEditTanggalNPBKN.Text)
NoSkCPNS = Trim(TextEditNoSkCPNS.Text)
TanggalTMT = Trim(DateEditTanggalTMT.Text)
NoSTTP = Trim(TextEditNoSTTP.Text)
TanggalSTTP = Trim(DateEditTanggalSTTP.Text)
NoSkPNS = Trim(TextEditNoSkPNS.Text)
TanggalKesehatan = Trim(DateEditTanggalKesehatan.Text)
NoKesehatan = Trim(TextEditNoKesehatan.Text)
Gambar = ImageToByte(PictureEditPegawaiImage.Image)
End If

CPNSLogicConnection.Data(Nama, Alamat, TempatLahir, TanggalLahir, JenisIdentitas, _
NoIdentitas, Kelamin, Perkawinan, Agama, NoTelp, _
JenjangPendidikan, NoIjasah, TanggalIjasah, Pendidikan, _
NIP, Golongan, KerjaTahun, KerjaBulan, GajiPokok, _
Penempatan, Jabatan, StatusKepegawaian, TanggalNpBKN, _
NoSkCPNS, TanggalTMT, NoSTTP, TanggalSTTP, NoSkPNS, _
TanggalKesehatan, NoKesehatan, Gambar)

If Not CPNSLogicConnection.InsertData Then
MessageBox.Show(PersonLogic.ConnException.Message.ToString)
End If

Catch ex As Exception
MessageBox.Show("Data gagal dimasukan")
End Try
End Sub
---------akhir code-------------

4. Tambahkan code berikut pada class CpnsLogic

----------awal code-----------------------
Public Function Data(ByVal Nama As String, ByVal Alamat As String, ByVal TempatLahir As String, _
ByVal TanggalLahir As String, ByVal JenisIdentitas As String, ByVal NoIdentitas As String, _
ByVal Kelamin As String, ByVal Perkawinan As String, ByVal Agama As String, ByVal NoTelp As String, _
ByVal JenjangPendidikan As String, ByVal NoIjasah As String, ByVal TglIjasah As String, _
ByVal Pendidikan As String, ByVal NIP As String, ByVal Golongan As String, _
ByVal KerjaTahun As String, ByVal KerjaBulan As String, ByVal GajiPokok As String, _
ByVal Penempatan As String, ByVal Jabatan As String, ByVal StatusKepegawaian As String, _
ByVal TanggalNpBKN As String, ByVal NoSkCPNS As String, ByVal TanggalTMT As String, _
ByVal NoSTTP As String, ByVal TanggalSTTP As String, ByVal NoSKPNS As String, _
ByVal TanggalKesehatan As String, ByVal NoKesehatan As String, _
ByVal Gambar As Byte()) As Boolean
Try
NamaPerson = Nama
AlamatPerson = Alamat
TempatLahirPerson = TempatLahir
TanggalLahirPerson = TanggalLahir
JenisIdentitasPerson = JenisIdentitas
NoIdentitasPerson = NoIdentitas
KelaminPerson = Kelamin
PerkawinanPerson = Perkawinan
AgamaPerson = Agama
NoTelpPerson = NoTelp
JenjangPendidikanPerson = JenjangPendidikan
NoIjasahPerson = NoIjasah
TanggalIjasahPerson = TglIjasah
PendidikanPerson = Pendidikan
_nipPegawai = NIP
_golonganPegawai = Golongan
_kerjaTahunPegawai = KerjaTahun
_kerjaBulanPegawai = KerjaBulan
_gajiPokokPegawai = GajiPokok
_penempatanPegawai = Penempatan
_jabatanPegawai = Jabatan
_statusKepegawaianPegawai = StatusKepegawaian
_tanggalNpBKN = TanggalNpBKN
_noSKCPNS = NoSkCPNS
_tanggalTMT = TanggalTMT
_noSTTP = NoSTTP
_tanggalSTTP = TanggalSTTP
_noSKPNS = NoSKPNS
_tanggalKesehatan = TanggalKesehatan
_noKesehatan = NoKesehatan
_gambarPegawai = Gambar

Return True
Catch ex As Exception
_exception = New Exception(ex.Message.ToString)
Return False
End Try
End Function

Public Function InsertData() As Boolean
Try
'open connection to database
If Not OpenDb() Then
_exception = New Exception("Connection can't be created")
Return False
End If

Command = New SqlCommand("dbo.InsertDataPegawai", ConnResource())
Command.CommandType = CommandType.StoredProcedure
Command.Parameters.Add("@Nama", SqlDbType.NChar).Value = NamaPerson
Command.Parameters.Add("@Alamat", SqlDbType.NText).Value = AlamatPerson
Command.Parameters.Add("@TempatLahir", SqlDbType.NChar).Value = TempatLahirPerson
Command.Parameters.Add("@TanggalLahir", SqlDbType.Date).Value = TanggalLahirPerson
Command.Parameters.Add("@NoHP", SqlDbType.NChar).Value = NoTelpPerson
Command.Parameters.Add("@NoIdentitas", SqlDbType.NChar).Value = NoIdentitasPerson
Command.Parameters.Add("@Kelamin", SqlDbType.NChar).Value = KelaminPerson
Command.Parameters.Add("@Perkawinan", SqlDbType.NChar).Value = PerkawinanPerson
Command.Parameters.Add("@Agama", SqlDbType.NChar).Value = AgamaPerson
Command.Parameters.Add("@Identitas", SqlDbType.NChar).Value = JenisIdentitasPerson
Command.Parameters.Add("@Jenjang", SqlDbType.NChar).Value = JenjangPendidikanPerson
Command.Parameters.Add("@NoIjasah", SqlDbType.Text).Value = NoIjasahPerson
Command.Parameters.Add("@TglIjasah", SqlDbType.Date).Value = TanggalIjasahPerson
Command.Parameters.Add("@Pendidikan", SqlDbType.Text).Value = PendidikanPerson

If _nipPegawai.Length > 0 Then
Command.Parameters.Add("@NIP", SqlDbType.NChar).Value = _nipPegawai
Command.Parameters.Add("@Golongan", SqlDbType.SmallInt).Value = _golonganPegawai
Command.Parameters.Add("@KerjaTahun", SqlDbType.Int).Value = _kerjaTahunPegawai
Command.Parameters.Add("@KerjaBulan", SqlDbType.Int).Value = _kerjaBulanPegawai
Command.Parameters.Add("@Penempatan", SqlDbType.NChar).Value = _penempatanPegawai
Command.Parameters.Add("@Jabatan", SqlDbType.NText).Value = _jabatanPegawai
Command.Parameters.Add("@StatusKepegawaian", SqlDbType.NChar).Value = _statusKepegawaianPegawai
Command.Parameters.Add("@TanggalNPBKN", SqlDbType.Date).Value = _tanggalNpBKN
Command.Parameters.Add("@NoSKCPNS", SqlDbType.NChar).Value = _noSKCPNS
Command.Parameters.Add("@TanggalTMT", SqlDbType.Date).Value = _tanggalTMT
Command.Parameters.Add("@NoSTTP", SqlDbType.NChar).Value = _noSTTP
Command.Parameters.Add("@TanggalSTTP", SqlDbType.Date).Value = _tanggalSTTP
Command.Parameters.Add("@NoSKPNS", SqlDbType.NChar).Value = _noSKPNS
Command.Parameters.Add("@TanggalKesehatan", SqlDbType.Date).Value = _tanggalKesehatan
Command.Parameters.Add("@NoKesehatan", SqlDbType.NChar).Value = _noKesehatan
Command.Parameters.Add("@Gambar", SqlDbType.Image).Value = _gambarPegawai
End If

Command.ExecuteNonQuery().ToString()
Catch ex As Exception
_exception = New Exception(ex.Message.ToString)
Return False
End Try

Return True
End Function
----------akhir code----------------------

Itu saja yang bisa saya bagikan. Kalau code itu gak jalan bisa saya pastikan karena code tersebut adalah potongan-potongan saja. Lihat ini untuk kode pembantu
Terima Kasih
Powered by Blogger.

Whatsapp Button works on Mobile Device only

Start typing and press Enter to search